

package com.tituaem.operacionesBd;

import com.toedter.calendar.JDateChooser;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import com.tituaem.conexionBd.ConexionSqlite;
import com.tituaem.gui.Agregar;


public class InsertardeGui extends ConexionSqlite {
    
    Connection con;
    Agregar gui;
    
    
    //contructores
    public InsertardeGui(Connection con, Agregar gui) {
        this.con = con;
        this.gui = gui;
    }

    public InsertardeGui(Agregar gui) throws ClassNotFoundException, SQLException {
        this.gui = gui;
        this.con=super.loadConnection();
    }
    
    public InsertardeGui() throws ClassNotFoundException, SQLException{
        this.con=super.loadConnection();
    }
    
    //metodos
    
    
    public void insertarProyecto(String titulo, String modalidad, String lugar, String hora, String fecha) throws SQLException{
        
        Statement stm=con.createStatement();
        stm.execute("insert into Proyecto (TituloProy, Modalidad, Lugar, Hora, Fecha) values( \""+titulo+"\", \""+modalidad+"\", \""+lugar+"\", \""+hora+"\", \""+fecha+"\")");
        stm.close();
        
        
    }
    
    public void insertarAlumno(String nom, String ap_p, String ap_m, String lic) throws SQLException{
        
        Statement stm=con.createStatement();
        stm.execute("insert into Alumnos (Nombre, Apellido_paterno, Apellido_Materno, _idLicenciatura) values( \""+nom+"\", \""+ap_p+"\", \""+ap_m+"\", \""+lic+"\")");
        stm.close();
        
        
    }
    
    public void insertarAlumnoProyecto(int idAl, int idProy) throws SQLException{
        Statement stm=con.createStatement();
        stm.execute("insert into AlumnoProyecto (_idAlumno, _idProyecto) values( \""+idAl+"\", \""+idProy+"\")");
        stm.close();
        
        
    }
    
    public void insertarPresentacionDesdeGui() throws SQLException{
        
        Consultas c=new Consultas(con);
        
        //obtener elementos de la gui
        JTextField titulo=gui.getTituloTxtFld();
        JTextField nombre=gui.getNombreTxtFld();
        JTextField apellidoP=gui.getApellidoPTxtFld();
        JTextField apellidoM=gui.getApellidoMTxtFld();
        JComboBox modalidad=gui.getModalidadCmBx();
        JComboBox licenciatura=gui.getLicenciaturaCmBx();
        JComboBox lugar=gui.getLugarCmBx();
        JDateChooser fecha=gui.getFechaDtChsr();
        JSpinner hora=gui.getHoraSpnr();
        SimpleDateFormat formatoFecha=new SimpleDateFormat("d/MM/yyyy");
        SimpleDateFormat formatoHora=new SimpleDateFormat("h:mm a");
        
        //obtener strings
        String titS=titulo.getText();
        String nomS=nombre.getText();
        String apPS=apellidoP.getText();
        String apMS=apellidoM.getText();
        String modS=modalidad.getSelectedItem().toString();
        String licS=licenciatura.getSelectedItem().toString();
        String luSr=lugar.getSelectedItem().toString();
        String fecS=formatoFecha.format(fecha.getDate());
        String hS=formatoHora.format(hora.getValue());
        
            if(c.estaElAlumno(nomS, apPS, apMS)){
                JOptionPane.showMessageDialog(null, "El alumno ya esta dado de alta en la base");
            }
            else{
                this.insertarAlumno(nomS, apPS, apMS, c.obtenerIdLicenciatura(licS));
                this.insertarProyecto(titS, c.obtenerIdModalidad(modS), c.obtenerIdLugar(luSr), hS, fecS);
                int idA=c.obtenerIdAlumno(nomS, apPS, apMS);
                int idP=c.obtenerIdProyecto(titS, fecS);
               this.insertarAlumnoProyecto(idA, idP);
            }
                
        
        
    }
    
    public void closeConnection()
    {
        try {
            con.close();
        } catch (SQLException ex) {
            Logger.getLogger(InsertardeGui.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    
    
    //main para pruebas
    
    public static void main(String[] args) {
        try {
            InsertardeGui i=new InsertardeGui();
            i.insertarAlumnoProyecto(2, 2);
            
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(InsertardeGui.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(InsertardeGui.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    
    
    
}
